home *** CD-ROM | disk | FTP | other *** search
/ Macworld Expo - Develope…Central & Net Innovations / Developer Central and Net Innovators (MacWorld Expo) (January 1999).iso / Developer Central / Bowers Development / Demo AppMaker / Examples / Pascal OS8 / Temperature / TemperatureDoc.p < prev    next >
Encoding:
Text File  |  1998-10-30  |  2.1 KB  |  137 lines  |  [TEXT/CWIE]

  1. { TemperatureDoc.p -- document-level functions }
  2.  
  3. Unit TemperatureDoc;
  4. Interface
  5.  
  6. Uses
  7.     Types,
  8.     Events,
  9.     Files,
  10.     Menus,
  11.     TemperatureEngine,
  12.     AMDoc;
  13.  
  14. type
  15.     TemperatureDoc        = object (AMDoc)
  16.  
  17.     {data members}
  18.         mMainWindowPtr:        WindowPtr;
  19.  
  20.     {methods - public}
  21.         Procedure Initialize; Override;
  22.  
  23.         Function  DoCommand        (inCommand:    longint): Boolean; Override;
  24.  
  25.     {methods - internal}
  26.         Procedure OpenWindows; Override;
  27.         Function  WouldCloseDoc        (windPtr:    WindowPtr): Boolean; Override;
  28.  
  29.         Function  GetEngine: TemperatureEngine;
  30.  
  31.         Procedure DoInvokeAbout;
  32.     end;
  33.  
  34. {----------}
  35. Function NewTemperatureDoc: TemperatureDoc;
  36.  
  37. {----------}
  38. Implementation
  39.  
  40. Uses
  41.     ResourceDefs,
  42.     Globals,
  43.  
  44.     AboutDialog,
  45.     DDocData,
  46.     MainWindow,
  47.     Miscellany;
  48.  
  49. {----------}
  50. Function NewTemperatureDoc: TemperatureDoc;
  51. var
  52.     doc:        TemperatureDoc;
  53. begin
  54.     New (doc);
  55.     if doc <> nil then begin
  56.         doc.Initialize;
  57.     end;
  58.     NewTemperatureDoc := doc;
  59. end;
  60.  
  61. {----------}
  62. Procedure TemperatureDoc.Initialize;
  63. begin
  64.     inherited Initialize;
  65.  
  66.     mEngine := NewTemperatureEngine;
  67.  
  68.     mMainWindowPtr := nil;
  69. end;
  70.  
  71. {----------}
  72. Function  TemperatureDoc.GetEngine: TemperatureEngine;
  73. begin
  74.     GetEngine := TemperatureEngine (mEngine);
  75. end;
  76.  
  77. {----------}
  78. Procedure TemperatureDoc.OpenWindows;
  79. var
  80.     engine:        TemperatureEngine;
  81. Begin
  82.     engine := GetEngine;
  83.  
  84.     { replace this code to get data from someplace useful }
  85.  
  86.     CreateMainWindow (self, engine.GetDocData);
  87. End;
  88.  
  89. {----------}
  90. Function TemperatureDoc.WouldCloseDoc (
  91.     windPtr:        WindowPtr): Boolean;
  92. var
  93.     numOpen:        integer;
  94. Begin
  95.     numOpen := 0;
  96.  
  97.     if mMainWindowPtr <> nil then        numOpen := numOpen + 1;
  98.  
  99.     WouldCloseDoc := (numOpen <= 1);
  100. End;
  101.  
  102. {----------}
  103. Procedure TemperatureDoc.DoInvokeAbout;
  104. var
  105.     dummy:        integer;
  106. begin
  107.     if GetAboutDialog then begin
  108.         { do something }
  109.     end;
  110. end;
  111.  
  112. {----------}
  113. Function TemperatureDoc.DoCommand (
  114.     inCommand:        longint): Boolean;
  115. begin
  116.     DoCommand := true;
  117.     case inCommand of
  118.         cmdSave:
  119.                 DoSave;
  120.         cmdSaveAs:
  121.                 DoSaveAs;
  122.         cmdRevert:
  123.                 DoRevert;
  124.         cmdPageSetup:
  125.                 DoPageSetup;
  126.         cmdPrint:
  127.                 DoPrint;
  128.         cmdInvokeAbout:
  129.                 DoInvokeAbout;
  130.  
  131.         otherwise
  132.                 DoCommand := false;
  133.     end; {case}
  134. end;
  135.  
  136. end.
  137.